home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / AmigaTalk / help / boopsidocs / radiobutton_gc.doc < prev    next >
Text File  |  2004-01-31  |  9KB  |  254 lines

  1. TABLE OF CONTENTS
  2.  
  3. radiobutton_gc/--datasheet--
  4. radiobutton_gc/RADIOBUTTON_GetClass
  5. radiobutton_gc/AllocRadioButtonNodeA
  6. radiobutton_gc/FreeRadioButtonNode
  7. radiobutton_gc/GetRadioButtonNodeAttrsA
  8. radiobutton_gc/SetRadioButtonNodeAttrsA
  9. radiobutton_gc/--datasheet--                       radiobutton_gc/--datasheet--
  10.  
  11.     NAME
  12.         radiobutton_gc -- create radiobutton BOOPSI objects
  13.  
  14.     SUPERCLASS
  15.         gadgetclass
  16.  
  17.      REQUIRES
  18.         bevel.image, glyph.image
  19.  
  20.     DESCRIPTION
  21.         The radiobutton gadget class is used to create a mutually exclusive
  22.         (MX) selection button group. Selection of an associated option is
  23.         denoted by the depressed/filled button. Unlike GadTools, GA_Width and
  24.         GA_Height to not specify the size of a single radio button. Instead
  25.         it marks the entire domain of the gadget which allows for easier
  26.         group layout. When used outside of a layout group you must be
  27.         sure to provide enough space for the gadget to completly render
  28.         all radio buttons and labels. However, within a layout group such
  29.         as ReAction's own layout.gadget this is automatic and of no
  30.         concern to the application programmer.        
  31.  
  32.         Advantages that this class provides over the standard gadtools
  33.         radiobutton (MX_KIND) are:
  34.  
  35.          > Strumming of the radio buttons with the mouse.
  36.  
  37.          > Aspect correct scaled buttons with any screen resolution or font.
  38.  
  39.          > Works under OS 2.0 or greater.
  40.  
  41.     METHODS
  42.         OM_NEW -- Passed to superclass first, defaults set, then OM_SET.
  43.  
  44.         OM_SET -- Passed to superclass first, then custom tags set.
  45.  
  46.         OM_GET -- Returns requested setting or passed to superclass
  47.  
  48.         OM_DISPOSE -- Passed to superclass.
  49.  
  50.         GM_GOACTIVE -- Passed to superclass first, then radio activated
  51.  
  52.         GM_GOINACTIVE -- Passed to superclass first, then radio deactivated
  53.  
  54.         GM_HANDLEINPUT -- Handles button selection/strum. Overrides superclass.
  55.  
  56.         GM_HITTEST -- Overrides superclass, returns GMR_HITTEST.
  57.  
  58.         GM_RENDER -- Renders radio button(s).
  59.  
  60.         GM_DOMAIN -- Returns GDOMAIN_MINIMUM and GDOMAIN_MAXIMUM dimensions.
  61.  
  62.         GM_KEYACTIVE -- Activates button via keyboard. Advances selection
  63.             to the next item (down), if SHIFT is pressed, it selects
  64.             the previous item (up). Invoked by window.class only.
  65.  
  66.         GM_KEYINACTIVE -- Deactivates gadget. Invoked by window.class only.
  67.  
  68.         All other methods are passed to the superclass.
  69.  
  70.  
  71.     ATTRIBUTES
  72.         GA_ID (WORD)
  73.             Applicability is (OM_NEW, OM_SET, OM_UPDATE, OM_NOTIFY)
  74.  
  75.         GA_TextAttr (struct TextAttr *)
  76.             Used to set the text font to render the radiobutton labels.
  77.  
  78.             Defaults to RPort->Font, which is often the screen or
  79.             window font.
  80.  
  81.             Applicability is (OM_NEW, OM_SET, OM_UPDATE)
  82.  
  83.         RADIOBUTTON_Labels (struct List *)
  84.             Used to set the text labels for the radiobutton group.
  85.  
  86.             Defaults to NULL.
  87.  
  88.             Applicability is (OM_NEW, OM_SET, OM_UPDATE)
  89.  
  90.  
  91.         RADIOBUTTON_Spacing (WORD)
  92.             Spacing between the radio buttons.
  93.  
  94.             Defaults to 1.
  95.  
  96.             Applicability is (OM_NEW, OM_SET, OM_UPDATE, OM_NOTIFY)
  97.  
  98.         RADIOBUTTON_Selected (WORD)
  99.             Currently selected radio button number.
  100.  
  101.             Defaults to 0.
  102.  
  103.             Applicability is (OM_NEW, OM_SET, OM_UPDATE)
  104.  
  105.         RADIOBUTTON_LabelPlace (WORD)
  106.             Location of radiobutton text labels. Supports:
  107.  
  108.                 PLACETEXT_RIGHT
  109.  
  110.             Defaults to PLACETEXT_RIGHT.
  111.  
  112.             Applicability is (OM_NEW, OM_SET, OM_UPDATE)
  113.  
  114.     NOTES
  115.         GA_Height and GA_Width DO NOT specify the actual button size, but
  116.         rather the entire "hit box" area which includes the text label.
  117.         When being used with layout.gadget it will domain to a proper
  118.         size to hold the number of buttons and largest text labels.
  119.         Take care when designing interfaces with out layout to set
  120.         a proper height and width to hold the radiobutton imagery.
  121.         This may be done via sending a BOOPSI GM_DOMAIN GDOMAIN_MINIMUM
  122.         method message to the object with DoGadgetMethod(), or computing
  123.         a minimum size based on font height and length. In otherwords,
  124.         use layout, its alot easier! :)
  125. radiobutton_gc/RADIOBUTTON_GetClass         radiobutton_gc/RADIOBUTTON_GetClass
  126.  
  127.     NAME
  128.         RADIOBUTTON_GetClass -- Gets the pointer to the radiobutton class.
  129.  
  130.     SYNOPSIS
  131.         radiobutton_class = RADIOBUTTON_GetClass();
  132.         D0
  133.  
  134.         Class * RADIOBUTTON_GetClass(VOID);
  135.  
  136.     FUNCTION
  137.         Obtains the pointer to the RadioButton gadget class for use with
  138.         NewObject().  This function always returns a valid pointer so
  139.         you do not need to check it.  The reason is that if the library
  140.         opens fine, then the pointer returned is already setup.  (Of course
  141.         this implies that if opening the library fails, you shouldn't be
  142.         calling this.)
  143.  
  144.         Note that this function does not create the class, that is done
  145.         when the class library is opened.
  146.  
  147.     INPUTS
  148.         Nothing.
  149.  
  150.     RESULT
  151.         radiobutton_class - Pointer to the RadioButton gadget class.
  152.  
  153.     SEE ALSO
  154. radiobutton_gc/AllocRadioButtonNodeA          radiobutton_gc/AllocRadioButtonNodeA
  155.  
  156.     NAME
  157.         AllocRadioButtonNodeA -- Allocate a RadioButton node. (V40)
  158.  
  159.     SYNOPSIS
  160.         struct Node * AllocRadioButtonNode(UWORD, Tag, ...)
  161.         node = AllocRadioButtonNode(columns, Tag, ...)
  162.  
  163.         struct Node * AllocRadioButtonNodeA(UWORD, struct TagItem *)
  164.         node = AllocRadioButtonNodeA(taglist)
  165.  
  166.     FUNCTION
  167.         Allocates a node that can be added to the Exec linked list of
  168.         labels in the radiobutton.  This is the only way to allocate a
  169.         node for this list, you cannot allocate nodes yourself because
  170.         the RadioButton class uses a private node structure.
  171.  
  172.     INPUTS
  173.         taglist - Attributes for the node, passed onto
  174.             SetRadioButtonNodeAttrsA().
  175.  
  176.     RESULT
  177.         node - A node that can be added into the Exec list of labels for
  178.             a RadioButton gadget.
  179.  
  180.     SEE ALSO
  181.         FreeRadioButtonNode(), SetRadioButtonNodeAttrsA()
  182. radiobutton_gc/FreeRadioButtonNode              radiobutton_gc/FreeRadioButtonNode
  183.  
  184.     NAME
  185.         FreeRadioButtonNode -- Free a RadioButton node. (V40)
  186.  
  187.     SYNOPSIS
  188.         VOID FreeRadioButtonNode(struct Node *)
  189.         FreeRadioButtonNode(node)
  190.  
  191.     FUNCTION
  192.         Frees a RadioButtonNode allocated with AllocRadioButtonNodeA().
  193.  
  194.     INPUTS
  195.         node - The node to free.
  196.  
  197.     SEE ALSO
  198.         AllocRadioButtonNodeA()
  199. radiobutton_gc/GetRadioButtonNodeAttrsA    radiobutton_gc/GetRadioButtonNodeAttrsA
  200.  
  201.     NAME
  202.         GetRadioButtonNodeAttrsA -- Get attributes about a RadioButton node. (V40)
  203.  
  204.     SYNOPSIS
  205.         VOID GetRadioButtonNodeAttrs(struct Node *, Tag, ...)
  206.         GetRadioButtonNodeAttrs(node, firsttag, ...)
  207.  
  208.         VOID GetRadioButtonNodeAttrsA(struct Node *, struct TagItem *)
  209.         GetRadioButtonNodeAttrsA(node, taglist)
  210.  
  211.     FUNCTION
  212.         The RadioButton uses a private node structure and all attributes
  213.         are hidden, and must therefore be accessed with this function.
  214.  
  215.     INPUTS
  216.         node - The RadioButton node to get the information on.
  217.         taglist - A tag list of attributes to get.  ti_Tag is the attribute
  218.         to get and ti_Data is a pointer to a location to copy the result
  219.         to.
  220.  
  221.     SEE ALSO
  222.         SetRadioButtonNodeAttrsA()
  223. radiobutton_gc/SetRadioButtonNodeAttrsA    radiobutton_gc/SetRadioButtonNodeAttrsA
  224.  
  225.     NAME
  226.         SetRadioButtonNodeAttrsA -- Set attributes of a RadioButton node. (V40)
  227.  
  228.     SYNOPSIS
  229.         VOID SetRadioButtonNodeAttrs(struct Node *, Tag, ...)
  230.         SetRadioButtonNodeAttrs(node, firsttag, ...)
  231.  
  232.         VOID SetRadioButtonNodeAttrsA(struct Node *, struct TagItem *)
  233.         SetRadioButtonNodeAttrsA(node, taglist)
  234.  
  235.     FUNCTION
  236.         Changes attributes for a RadioButton node.  Since the RadioButton
  237.         class uses a private node structure, this is the only way to change
  238.         node attributes.
  239.  
  240.         You may NOT change node attributes when the node is in a list
  241.         attached to a RadioButton gadget.  You must first detach the list
  242.         with RADIOBUTTON_Labels, ~0 before you can change attributes, and
  243.         then re-attach the list.
  244.  
  245.     TAGS
  246.         RBNA_Label (STRPTR)
  247.  
  248.     INPUTS
  249.         node - Node whose attributes you are changing.
  250.         taglist - Tag list of attributes to change.
  251.  
  252.     SEE ALSO
  253.         GetRadioButtonNodeAttrsA()
  254.